package com.cn.product.service;

import com.cn.api.ProductCoreService;
import com.cn.dto.ProductDTO;
import com.cn.product.entity.Product;
import com.cn.product.mapper.ProductMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;

@Slf4j
@RestController
@RequestMapping("/product")
public class ProductCoreServiceImpl implements ProductCoreService {
    @Autowired
    private ProductMapper productMapper;

    //查询所有产品信息
    @Override
    @GetMapping("/findAll")
    public List<ProductDTO> findAll(ProductDTO productDTO) {
        log.info("\n原子层（实现类）：产品！！！！！！！！！！！！！！！！！！！！！！！！！");

        productMapper.findAll(null);
        return null;
    }

    //根据id查询单个产品信息
    @Override
    @GetMapping("/findById")
    public ProductDTO findById(Integer productId) {
        Product product = new Product();
        ProductDTO productDTO = new ProductDTO();

        System.out.println("原子层实现");
        product = productMapper.findById(productId);


        productDTO.setId(product.getId());
        productDTO.setName(product.getName());
        productDTO.setLogo(product.getLogo());
        productDTO.setType(product.getType());
        productDTO.setScenicId(product.getScenicId());
        productDTO.setProductTag(product.getProductTag());
        productDTO.setState(product.getState());
        return productDTO;
    }

    //添加单个产品信息
    @Override
    @PostMapping("/add")
    public int add(ProductDTO productDTO) {
        return 1;
    }

    //删除产品（逻辑删除）
    @Override
    @PostMapping("/delete")
    public int delete(Integer productId) {
        int result = productMapper.delete(productId);
        return result;
    }

    //修改产品信息
    @Override
    @PostMapping("/update")
    public int update(ProductDTO productDTO) {
        Product product = new Product();
        product.setType(productDTO.getType());
        product.setId(productDTO.getId());
        int resutl = productMapper.update(product);
        return resutl;
    }

    //根据某条件查询产品
    @Override
    @GetMapping("/findCondition")
    public List<ProductDTO> findCondition(ProductDTO product) {
        return null;
    }
}
